package indi.zhifa.recipe.bailan.busy.service;

import indi.zhifa.recipe.bailan.busy.appproperty.PlayerProperty;
import indi.zhifa.recipe.bailan.busy.entity.dto.PlayerDto;
import indi.zhifa.recipe.bailan.busy.entity.enums.EWeapon;
import indi.zhifa.recipe.bailan.busy.entity.po.PlayerEntity;

import java.util.List;

public interface IPlayerService {
    /**
     * 读取yml中初始配置的角色
     * @param pIniPlayers 角色数组
     */
    void init(List<PlayerProperty> pIniPlayers);

    /**
     * 新增角色
     *
     * @param pPlayerDto 角色配置数据
     * @return PlayerEntity 角色实体
     */
    PlayerEntity create(PlayerDto pPlayerDto);

    /**
     * 修改角色
     *
     * @param pId 角色Id
     * @param pPlayerDto 角色信息
     * @return PlayerEntity 角色实体
     */
    PlayerEntity edit(Long pId, PlayerDto pPlayerDto);

    /**
     * 删除角色
     *
     * @param pId 角色Id
     * @return 是否删除成功
     */
    boolean delete(Long pId);

    /**
     * 查找角色信息
     *
     * @param pId 角色Id
     * @return 角色信息
     */
    PlayerEntity info(Long pId);

    /**
     * 查询角色列表
     *
     * @param pName 角色名
     * @param pWeapon 武器
     * @return List<PlayerEntity> 角色列表
     */
    List<PlayerEntity> list(String pName, EWeapon pWeapon);
}
